<?php

/*
 * Page Perfil de Escorts.
 * @Autor: Inicial.cl
 */

class Perfil extends TPage {

    const ESCORT = 0;
    const SERVICIOS = 1;
    const ESCORT_RELACIONADAS = 2;
    const EVALUACIONES = 3;

    public function onLoad($param) {
        parent::onLoad($param);
        if (!$this->IsPostBack) {
            $this->actualizarIntefaz();
        }
    }

    private function actualizarIntefaz() {
        $arr = $this->obtenerDatos();
        $this->iniciarControles($arr);

        $this->txtTrato->Attributes->Add("type", "number");
        $this->txtLugar->Attributes->Add("type", "number");
        $this->txtCara->Attributes->Add("type", "number");
        $this->txtBesos->Attributes->Add("type", "number");
        $this->txtTetas->Attributes->Add("type", "number");
        $this->txtCulo->Attributes->Add("type", "number");
        $this->txtOral->Attributes->Add("type", "number");
        $this->txtMovimientos->Attributes->Add("type", "number");
        $this->txtSonido->Attributes->Add("type", "number");
        $this->txtAnal->Attributes->Add("type", "number");
        $this->txtHigiene->Attributes->Add("type", "number");
        $this->txtEmpotamiento->Attributes->Add("type", "number");
        $this->txtPhotoshop->Attributes->Add("type", "number");
    }

    private function obtenerDatos() {
        $arr = array();
        $arg = Util::isNull($this->Request["a"], "-1");
        $id = Util::desencriptarUrl($arg, "id");
        $redireccionar = false;
        if (!Util::isNullOrEmpty($id)) {
            if (is_numeric($id) && $id > 0) {
                $this->setViewState("ID", $id);
                $oEscort = new Escort();
                $oEscortBLL = new EscortBLL();
                $oEscort = $oEscortBLL->obtenerPorId($id);
                $arr[self::ESCORT] = $oEscort;
                $oServicio_escort = new Servicio_escort();
                $oServicio_escort->setIdEscort($id);
                $oServicioEscortBLL = new Servicio_escortBLL();
                $arr[self::SERVICIOS] = $oServicioEscortBLL->listar($oServicio_escort);
                //$arr[self::ESCORT_RELACIONADAS] = $oEscortBLL->listarRelacionadas($id);
                $oEvaluaciones = new Evaluacion_escort();
                $oEvaluacionesBLL = new Evaluacion_escortBLL();
                $arr[self::EVALUACIONES] = $oEvaluacionesBLL->listarPorEscort($id);
            } else {
                $redireccionar = true;
            }
        } else {
            $redireccionar = true;
        }
        if ($redireccionar) {
            $this->Response->Redirect("index.php");
        }
        return $arr;
    }

    private function iniciarControles($arr) {
        if (count($arr) > 0) {
            $this->iniciarControlesDescripcion($arr[self::ESCORT]);
            $this->iniciarControlesServicios($arr[self::SERVICIOS]);
            //$this->iniciarControlesRelacionadas($arr[self::ESCORT_RELACIONADAS]);
            $this->iniciarControlesGaleriaImagenes($arr[self::ESCORT]);
            $this->iniciarControlesEvaluaciones($arr[self::EVALUACIONES]);
        }

        $oUsuario = new Usuario();
        $oUsuario = Util::getSession("USUARIO");
        if ($oUsuario != null) {
            $arg = Util::encriptarUrl(array("id" => $oUsuario->getId()));
            $this->litComentarComoTop->Text = "<span class=\"user_com\">Comentar como <a href=\"index.php?page=Index.ViewUsuario&a=" . $arg . "\" title=\"Ir a mi perfil\">" . $oUsuario->getUsuario() . "</a> - No eres tu? <a href=\"index.php?page=Index.CerrarSession\" title=\"Cerrar sesion\">Cambiar de usuario</a></span>";
            $oEscort = $arr[self::ESCORT];
            $arg = Util::encriptarUrl(array("id" => $oEscort->getId()));
            $page = "?page=Index.Perfil&a=" . $arg;
            $this->litEscribirComentario->Text = "<a class=\"escribir\" data-toggle=\"modal\" href=\"#\" data-target=\"#modalPublicarComentario\" onclick=\"prepararComentario('" . Tipo_comentario::ESCORT . "','" . $oEscort->getId() . "','#holderComentarios','" . $page . "');jQuery('#ctl0_txtComentario').focus();\">Escribir comentario</a>";
            //$this->litEscribirComentarioBottom->Text = "<a class=\"escribir\" data-toggle=\"modal\" href=\"#\" data-target=\"#modalPublicarComentario\" onclick=\"prepararComentario('" . Tipo_comentario::ESCORT . "','" . $oEscort->getId() . "','#holderComentarios','" . $page . "');jQuery('#ctl0_txtComentario').focus();\">Escribir comentario</a>";
        } else {
            $this->litComentarComoTop->Text = "<span class=\"user_com\">Debes <a data-toggle=\"modal\" href=\"#modalLogin\" title=\"Ingresa a tu cuenta para acceder a todas las funciones de nuestro portal\">ingresar</a> a tu cuenta para comentar o <a data-toggle=\"modal\" href=\"#modalRegistro\" title=\"Registrate para acceder a todas las funciones de nuestro portal\">registrate</a></span>";
            $this->litEscribirComentario->Text = "<a class='escribir' data-toggle='modal' href='#modalLogin' data-target='#modalLogin'>Escribir comentario</a>";
            //$this->litEscribirComentarioBottom->Text = "<a class='escribir' data-toggle='modal' href='#modalLogin' data-target='#modalLogin'>Escribir comentario</a>";
        }
    }

    private function iniciarControlesDescripcion($oEscort) {
        if($oEscort->getCertificada() == 1){
            $this->litCertificada->Text = "<img style='position:absolute;width:150px;top:0;right:0;z-index:9;' src='./themes/user/images/certificada_perfil.png' />";
        }
        $path = Util::obtenerPathRecursoEscort($this->Page, Tipo_recurso::IMAGEN, Tipo_recurso::PATH_IMAGEN_TOP5);
        $oRecursoBLL = new Recurso_escortBLL();
        $oRecurso = new Recurso_escort();
        $arrRecurso = $oRecursoBLL->listarPorIdEscort($oEscort->getId(), Tipo_recurso::IMAGEN, "TOP5");
        foreach ($arrRecurso as $oRecurso) {
            $this->litImageSrc->Text = "<meta property='og:image' content='http://www.diosasdelplacer.cl". $path . $oRecurso->getSrc()."' />";
            break;
        }
        $this->Page->Title = $oEscort->getNombre() . " - Diosas del Placer";
        $this->txtIdEscort->Value = $oEscort->getId();
        $this->lblNombre->Text = $oEscort->getNombre();
        $this->lblTelefono->Text = $oEscort->getTelefono();
        $this->lblDireccion->Text = $oEscort->getDireccion() . " (" . $oEscort->getComuna() . ")";
        if (!Util::isNullOrEmpty($oEscort->getValorPromo()) && $oEscort->getValorPromo() != "0") {
            $this->pnlValorPromo->Visible = true;
            $this->litValorPromo->Text = "<span>Valor Promo: $" . $oEscort->getValorPromo() . ".-</span>";
            $this->litValorHora->Text = "<span style='text-decoration: line-through;'>Valor Normal: $" . $oEscort->getValorNormal() . ".-</span>";
            if ($oEscort->getValorMedia() > 0) {
                $this->litValorMediaHora->Text = "<p style='left: 30px;'>" . $oEscort->getValorMedia() . " la media hora.</p>";
            }
        } else {
            $this->pnlValorPromo->Visible = false;
            $this->litValorHora->Text = "<span>Valor Normal: $" . $oEscort->getValorNormal() . ".-</span>";
            $this->litValorMediaHora->Text = "<p style='left: 5px;'>" . $oEscort->getValorMedia() . " la media hora.</p>";
        }
        $this->lblHorario->Text = Util::isNullOrEmpty($oEscort->getHorario()) ? "Full time" : $oEscort->getHorario();
        $this->lblEdad->Text = "Edad: " . $oEscort->getEdad();
        $this->lblPeso->Text = "Peso: " . $oEscort->getPeso();
        $this->lblPiel->Text = "Piel: " . $oEscort->getPiel();
        $this->lblOjos->Text = "Ojos: " . $oEscort->getOjos();
        $this->lblPelo->Text = "Pelo: " . $oEscort->getPelo();
        $this->lblMedidas->Text = "Medidas: " . $oEscort->getMedidas();
        $this->lblAltura->Text = "Altura: " . $oEscort->getAltura();
        $this->lblPais->Text = "Pais: " . $oEscort->getNacionalidad();
        $this->lblIdiomas->Text = "Idiomas: " . $oEscort->getIdiomas();
        $this->litDescripcion->Text = $oEscort->getDescripcion();
        $this->actualizarVoto($oEscort->getId());
        $arg = Util::encriptarUrl(array("id" => $oEscort->getId()));

        $oUsuario = Util::getSession("USUARIO");
        if (!Util::isNullOrEmpty($oUsuario)) {
            $this->litLinkRelatos->Text = "<a href='index.php?page=Index.ListaRelatos&a=" . $arg . "' class='verRelatos'>Ver Relatos</a> / <a href='index.php?page=Index.EscribirRelato&a=" . $arg . "'>Escribir Relato</a>";
            //$this->litLinkRelatosBottom->Text = "<a href='index.php?page=Index.ListaRelatos&a=" . $arg . "' class='verRelatos'>Ver Relatos</a> / <a href='index.php?page=Index.EscribirRelato&a=" . $arg . "'>Escribir Relato</a>";
            $this->litHacerEvaluacion->Text = "<a href='#modalHacerEvaluacion' data-toggle='modal' data-dismiss='modal' aria-hidden='true' class='btn btn-inverse'>Escribir evaluaci&oacute;n</a>";
        } else {
            $this->litLinkRelatos->Text = "<a href='index.php?page=Index.ListaRelatos&a=" . $arg . "' class='verRelatos'>Ver Relatos</a>";
            //$this->litLinkRelatosBottom->Text = "<a href='index.php?page=Index.ListaRelatos&a=" . $arg . "' class='verRelatos'>Ver Relatos</a>";
            $this->litMensajeHacerEvaluacion->Text = "<span style='color:#ccc;' class='pull-left'>Para hacer una evaluacion, debes ingresar con tu usuario.</span><br /><br />";
        }
    }

    private function iniciarControlesServicios($arr) {
        $template = "<li class='{#STYLE}'><img src='./themes/user/images/{#IMG_REALIZA_SERVICIO}.png'><span>{#SERVICIO}</span></li>";
        $arrStyle = array("style_1", "style_2", "style_2", "style_1");
        $i = 0;
        $html = "";
        foreach ($arr as $oServicio) {
            if ($i == 4) {
                $i = 0;
            }
            $templateAux = $template;
            $templateAux = str_replace("{#STYLE}", $arrStyle[$i], $templateAux);
            $templateAux = str_replace("{#IMG_REALIZA_SERVICIO}", $oServicio->getRealizaServicio() ? "i_ok" : "i_x", $templateAux);
            $templateAux = str_replace("{#SERVICIO}", $oServicio->getNombre(), $templateAux);
            $html .= $templateAux;
            $i++;
        }
        $this->litServicios->Text = $html;

        /*
          $template = "<li class='{#STYLE}'><img src='./themes/user/images/{#IMG_REALIZA_SERVICIO}.png'><span>{#SERVICIO}</span></li>";
          $arrStyle = array("style_1", "style_2", "style_2", "style_1");
          $e = 0;
          $html = "";
          foreach ($arr as $oServicio) {
          if ($e == 4) {
          $e = 0;
          }
          $templateAux = $template;
          $templateAux = str_replace("{#STYLE}", $arrStyle[$e], $templateAux);
          $templateAux = str_replace("{#IMG_REALIZA_SERVICIO}", $oServicio->getRealizaServicio() ? "i_ok" : "i_x", $templateAux);
          $templateAux = str_replace("{#SERVICIO}", $oServicio->getNombre(), $templateAux);
          $html .= $templateAux;
          $e++;
          }
          $this->litOtros->Text = $html;
         */
    }

    private function iniciarControlesRelacionadas($arr) {
        $path = Util::obtenerPathRecursoEscort($this->Page, Tipo_recurso::IMAGEN, Tipo_recurso::PATH_IMAGEN_PERFIL);
        $template = "<li class='thumb-destacada'>
                        <div class='thumbnail'>
                            <a href='index.php?page=Index.Perfil&a={#LINK}' title='{#NOMBRE_ESCORT}'><img alt='{#NOMBRE_ESCORT}' src='{#IMG}' /></a>
                        </div>
                    </li>";
        $html = "";
        $templateAux = "";
        if (count($arr) > 0) {
            foreach ($arr as $oEscort) {
                foreach ($oEscort->getRecurso() as $oRecurso) {
                    $templateAux = $template;
                    $templateAux = str_replace("{#LINK}", Util::encriptarUrl(array("id" => $oEscort->getId())), $templateAux);
                    $templateAux = str_replace("{#NOMBRE_ESCORT}", $oEscort->getNombre(), $templateAux);
                    $templateAux = str_replace("{#IMG}", $path . $oRecurso->getSrc(), $templateAux);
                    $html .= $templateAux;
                    break;
                }
            }
        }
        $this->litEscortRelacionadas->Text = $html;
    }

    private function iniciarControlesGaleriaImagenes($oEscort) {
        $pathBig = Util::obtenerPathRecursoEscort($this->Page, Tipo_recurso::IMAGEN, Tipo_recurso::PATH_IMAGEN_PERFIL);
        $pathThumb = Util::obtenerPathRecursoEscort($this->Page, Tipo_recurso::IMAGEN, Tipo_recurso::PATH_IMAGEN_PERFIL_THUMBS);
        $template = "<li>
                        <a class='thumb' name='leaf' href='{#SRC_BIG}' title='{#TITLE}'>
                            <img src='{#SRC_THUMB}' />
                        </a>
                    </li>";
        $html = "";
        $templateAux = "";
        foreach ($oEscort->getRecurso() as $oRecurso) {
            if ($oRecurso->getTitle() == "PERFIL") {
                $templateAux = $template;
                $templateAux = str_replace("{#TITLE}", $oEscort->getNombre(), $templateAux);
                $templateAux = str_replace("{#SRC_THUMB}", $pathThumb . $oRecurso->getSrc(), $templateAux);
                $templateAux = str_replace("{#SRC_BIG}", $pathBig . $oRecurso->getSrc(), $templateAux);
                $html .= $templateAux;
            }
        }
        $this->litImgGaleria->Text = $html;
    }

    public function btnVotarOnClick($sender, $param) {
        $oUsuario = Util::getSession("USUARIO");

        if (!Util::isNullOrEmpty($oUsuario)) {
            $oVoto_usuario = new Voto_usuario();
            $oEscortBLL = new EscortBLL();
            $oVoto_usuarioBLL = new Voto_usuarioBLL();
            $puedeVotar = false;
            $accion = "";

            $id = $this->getViewState("ID");
            $oVoto_usuario->setIdEscort($id);
            $oVoto_usuario->setIdUsuario($oUsuario->getId());

            $fechaUltimoVoto = $oVoto_usuarioBLL->obtenerFecha($oVoto_usuario);

            if (Util::isNullOrEmpty($fechaUltimoVoto)) {
                $puedeVotar = true;
                $accion = "nuevo";
            } else {
                $resultado = Util::validaFechaMayorAActual(substr($fechaUltimoVoto, 0, 10));
                if ($resultado) {
                    $puedeVotar = true;
                    $accion = "editar";
                }
            }

            if ($puedeVotar) {
                $this->taPuedeVotar->Value = "1";
                if ($accion == "nuevo") {
                    $oVoto_usuarioBLL->grabar($oVoto_usuario);
                } else {
                    $oVoto_usuarioBLL->editar($oVoto_usuario);
                }
                $oEscortBLL->votar($id);
                $this->actualizarVoto($id);
            } else {
                $this->taPuedeVotar->Value = "0";
            }
        } else {
            $this->taPuedeVotar->Value = "-1";
        }
    }

    private function actualizarVoto($id) {
        $oEscort = new Escort();
        $id = $this->getViewState("ID");
        $oEscortBLL = new EscortBLL();
        $oEscort = $oEscortBLL->obtenerPorId($id);
        $this->taVotos->Text = $oEscort->getVoto() . " <i class='icon-heart icon-white'></i>";
    }

    public function btnEvaluarOnClick($sender, $param) {
        $oUsuario = Util::getSession("USUARIO");
        if (!Util::isNullOrEmpty($oUsuario)) {
            $oEvaluacion = new Evaluacion_escort();
            $oEvaluacion->setIdUsuario($oUsuario->getId());
            $oEvaluacion->setIdEscort($this->getViewState("ID"));
            $trato = $this->txtTrato->Text;
            $lugar = $this->txtLugar->Text;
            $cara = $this->txtCara->Text;
            $besos = $this->txtBesos->Text;
            $tetas = $this->txtTetas->Text;
            $culo = $this->txtCulo->Text;
            $oral = $this->txtOral->Text;
            $movimientos = $this->txtMovimientos->Text;
            $sonido = $this->txtSonido->Text;
            $anal = $this->txtAnal->Text;
            $higiene = $this->txtHigiene->Text;
            $empotamiento = $this->txtEmpotamiento->Text;
            $photoshop = $this->txtPhotoshop->Text;

            $oEvaluacion->setTrato($trato);
            $oEvaluacion->setLugar($lugar);
            $oEvaluacion->setCara($cara);
            $oEvaluacion->setBesos($besos);
            $oEvaluacion->setTetas($tetas);
            $oEvaluacion->setCulo($culo);
            $oEvaluacion->setMamon($oral);
            $oEvaluacion->setMovimientos($movimientos);
            $oEvaluacion->setSonido($sonido);
            $oEvaluacion->setAnal($anal);
            $oEvaluacion->setHigiene($higiene);
            $oEvaluacion->setEmpotamiento($empotamiento);
            $oEvaluacion->setPhotoshop($photoshop);
            $notaFinal = ($trato + $lugar + $cara + $besos + $tetas + $culo + $oral + $movimientos + $sonido + $anal + $higiene + $empotamiento) / 12;
            $oEvaluacion->setNotaFinal($notaFinal);

            $oEvaluacionBLL = new Evaluacion_escortBLL();
            $result = $oEvaluacionBLL->grabar($oEvaluacion);
            if (is_int($result) && $result > 0) {
                $this->taEvaluacionCompleta->Value = "1";
            } else {
                $this->taEvaluacionCompleta->Value = "-1";
            }
        }
    }

    private function iniciarControlesEvaluaciones($oEvaluaciones) {
        if ($oEvaluaciones->getNumeroEvaluaciones() > 0) {
            $this->litTrato->Text = round($oEvaluaciones->getTrato(), 1);
            $this->litLugar->Text = round($oEvaluaciones->getLugar(), 1);
            $this->litBesos->Text = round($oEvaluaciones->getBesos(), 1);
            $this->litCara->Text = round($oEvaluaciones->getCara(), 1);
            $this->litTetas->Text = round($oEvaluaciones->getTetas(), 1);
            $this->litCulo->Text = round($oEvaluaciones->getCulo(), 1);
            $this->litOral->Text = round($oEvaluaciones->getMamon(), 1);
            $this->litMovimientos->Text = round($oEvaluaciones->getMovimientos(), 1);
            $this->litSonido->Text = round($oEvaluaciones->getSonido(), 1);
            $this->litAnal->Text = round($oEvaluaciones->getAnal(), 1);
            $this->litHigiene->Text = round($oEvaluaciones->getHigiene(), 1);
            $this->litEmpotamiento->Text = round($oEvaluaciones->getEmpotamiento(), 1);
            $this->litPhotoshop->Text = round($oEvaluaciones->getPhotoshop(), 1);
            $this->litNumeroEvaluaciones->Text = $oEvaluaciones->getNumeroEvaluaciones();
            $this->litPromedio->Text = round($oEvaluaciones->getNotaFinal(), 1);
        } else {
            $this->litNumeroEvaluaciones->Text = $oEvaluaciones->getNumeroEvaluaciones();
        }
    }

}

?>
